1. Field of the Invention
This invention relates in general to printing systems, and more particularly to a method and apparatus for concurrently spooling and despooling print jobs to increase print job throughput in printer spooling arrangements.
2. Description of Related Art
Desktop computers and computer networks are usually connected to various peripheral devices to extend the computer's capabilities. One common peripheral device is a printer, which produces text and images in hardcopy format. There are many different types of printers, broadly grouped into impact printers and non-impact printers. Printers may also be categorized by the environment under which they operate, such as local and network printers. A local printer is one that is directly connected to one of the ports on a desktop, workstation, or other single host computer, and a network printer is shared by multiple computers over a network.
Local printers receive print data from a source, such as a single host computer, and network printers receive print data via a network that contains at least one host computer or network server. In typical desktop personal computer (PC) environments, “print jobs” are submitted (via the direct connection or network) to the printer, as a means to pass the print data to the printer. Print jobs represent units of work to be run on a printer, and can include printing one or multiple files, depending on how the print jobs are requested. In single host environments, and particularly in network environments, a connected printer may be presented with a large print file or multiple print files by way of the print jobs. Generally, the printer is equipped with sufficient memory to accept large or multiple print jobs, thereby freeing the computer to continue normal operations by allowing the printer to retain the print jobs until they are physically printed. Alternatively, print spooling may be employed to control the flow of print data to the printer, and generally stores the programs in an organized manner on a hard disk until the printer becomes available.
More particularly, to “spool” (Simultaneous Peripheral Operation On Line) is to utilize a program or device that controls the flow of data to an outputting device such as a printer. Spooling means that a user can send data to a printer that is already occupied, and the data will be passed onto the printer when it becomes available.
However, despite the ability of a printer to spool a large file, or to spool multiple files, a printer can only print one job at a time. In prior art systems, this bottleneck is exacerbated by the fact that the complete incoming print job is received on the hard disk before the print job is sent to the print engine for printing. Therefore, particularly in the case of large print jobs, a significant delay is introduced in printing the job(s), which adversely affects overall printer throughput.
Printing of graphical images and other data-intensive files has increased, particularly due to evolving technologies and the increased accessibility of available information, such as via the Internet. In view of the potentially increasing print job size, and in view of the ever-increasing use of “shared” printers via networks, printer throughput is a major concern. It would be desirable to avoid the aforementioned printer throughput problems, particularly the problem of having printing idle times while a print job is spooling, and other problems associated with prior art printing systems. A need exists in the printing industry for a system and manner of expediting spooling and despooling processes, to increase the overall printer throughput. The present invention provides a solution to the aforementioned and other shortcomings of prior art printing systems, while offering additional advantages over the prior art.